home *** CD-ROM | disk | FTP | other *** search
/ Windows Game Programming for Dummies (2nd Edition) / WinGamProgFD.iso / mac / DirectX SDK / DXSDK / samples / Multimedia / VBSamples / Media / ripple.vsh < prev    next >
Text File  |  2001-10-08  |  1KB  |  72 lines

  1. ; Constants:
  2. ;
  3. ;  c0-c3  - View+Projection matrix
  4. ;
  5. ;  c4.x   - time
  6. ;  c4.y   - 0
  7. ;  c4.z   - 0.5
  8. ;  c4.w   - 1.0
  9. ;
  10. ;  c7.x   - pi
  11. ;  c7.y   - 1/2pi
  12. ;  c7.z   - 2pi
  13. ;  c7.w   - 0.05
  14. ;
  15. ;  c10    - first 4 taylor coefficients for sin(x)
  16. ;  c11    - first 4 taylor coefficients for cos(x)
  17.  
  18. ; vertex shader version 1.0
  19. vs.1.0
  20.  
  21.  
  22. ; Decompress position
  23. mov r0.x, v0.x
  24. mov r0.y, c4.w       ; 1
  25. mov r0.z, v0.y
  26. mov r0.w, c4.w       ; 1
  27.  
  28. ; Compute theta from distance and time
  29. mov r4.xz, r0        ; xz
  30. mov r4.y, c4.y       ; y = 0
  31. dp3 r4.x, r4, r4     ; d2
  32. rsq r4.x, r4.x
  33. rcp r4.x, r4.x       ; d
  34. mul r4.xyz, r4, c4.x     ; scale by time
  35.  
  36. ; Clamp theta to -pi..pi
  37. add r4.x, r4.x, c7.x
  38. mul r4.x, r4.x, c7.y
  39. frc r4.xy, r4.x
  40. mul r4.x, r4.x, c7.z
  41. add r4.x, r4.x,-c7.x
  42.  
  43. ; Compute first 4 values in sin and cos series
  44. mov r5.x, c4.w       ; d^0
  45. mov r4.x, r4.x       ; d^1
  46. mul r5.y, r4.x, r4.x ; d^2
  47. mul r4.y, r4.x, r5.y ; d^3
  48. mul r5.z, r5.y, r5.y ; d^4
  49. mul r4.z, r4.x, r5.z ; d^5
  50. mul r5.w, r5.y, r5.z ; d^6
  51. mul r4.w, r4.x, r5.w ; d^7
  52.  
  53. mul r4, r4, c10      ; sin
  54. dp4 r4.x, r4, c4.w
  55.  
  56. mul r5, r5, c11      ; cos
  57. dp4 r5.x, r5, c4.w
  58.  
  59. ; Set color
  60. add r5.x, -r5.x, c4.w ; + 1.0
  61. mul oD0, r5.x, c4.z   ; * 0.5
  62.  
  63. ; Scale height
  64. mul r0.y, r4.x, c7.w
  65.  
  66. ; Transform position
  67. dp4 oPos.x, r0, c0
  68. dp4 oPos.y, r0, c1
  69. dp4 oPos.z, r0, c2
  70. dp4 oPos.w, r0, c3
  71.  
  72.